14 research outputs found
Architecting Persistent Memory Systems
The imminent release of 3D XPoint memory by Intel and Micron looks set to end the long
wait for affordable persistent memory. Persistent memories combine the persistence of disk
with DRAM-like performance, blurring the traditional divide between a byte-addressable,
volatile main memory and a block-addressable, persistent storage (e.g., SSDs). One of
the most disruptive potential use cases for persistent memories is to host in-memory recoverable data structures. These recoverable data structures may be directly modified by
programmers using user-level processor load and store instructions, rather than relying on
performance sapping software intermediaries like the operating and file systems.
Ensuring the recoverability of these data structures requires programmers to have the
ability to control the order of updates to persistent memory. Current systems do not provide
efficient mechanisms (if any) to enforce the order in which store instructions update the
physical main memory. Recently proposed memory persistency models allow programmers to specify constraints on the order in which stores can be written-back to main memory.
While ordering constraints are necessary for recoverability, they are expensive to enforce
due to the high write-latencies exhibited by popular persistent memory technologies. Moreover, reasoning about recovery correctness using memory persistency models in addition
to ensuring necessary concurrency control in multi-threaded programs drastically increases
programming burden. This thesis aims at increasing the adoption of persistent memories
through a) improving the performance of recoverable data structures and b) simplifying
persistent memory programming.
Software transaction abstractions developed using recently proposed memory persistency
models are expected to be widely used by regular programmers to exploit the advantages
of persistent memory. This thesis shows that a straightforward implementation of
transactions imposes many unnecessary constraints on stores to persistent memory. This
thesis also shows how to reduce these constraints through a variety of techniques, notably,
deferring transaction commit until after locks are released, resulting in substantial performance
improvements.
Next, this thesis shows the high cost of enforcing ordering constraints using recent
x86 ISA extensions to enable persistent memory programming, an ordering model referred
to as synchronous ordering. Synchronous ordering tightly couples enforcing order with
writing back stores to main memory, but this tight coupling is often unnecessary to ensure
recoverablity. Instead, this thesis proposes delegated persist ordering, wherein ordering
requirements are communicated explicitly to the persistent memory controller via novel
enhancements to the cache hierarchy. Delegated persist ordering decouples store ordering from processor execution and cache management, significantly reducing processor stalls,
and hence, the cost of enforcing constraints.
Finally, existing memory persistency models have all been specified to be used in conjunction
with ISA-level memory models. That is, programmers must reason about recovery
correctness at the abstraction of assembly instructions, an approach which is error prone
and places an unreasonable burden on the programmer. This thesis argues for a language-level
persistency model that provides mechanisms to specify the semantics of accesses to
persistent memory as an integral part of the programming language and proposes a concrete
model, acquire-release persistency, that extends C++11s memory model to provide
persistency semantics.PHDComputer Science & EngineeringUniversity of Michigan, Horace H. Rackham School of Graduate Studieshttps://deepblue.lib.umich.edu/bitstream/2027.42/136953/1/akolli_1.pd
Egalitarian ORAM: Wear-Leveling for ORAM
While non-volatile memories (NVMs) provide several desirable characteristics
like better density and comparable energy efficiency than DRAM, DRAM-like
performance, and disk-like durability, the limited endurance NVMs manifest
remains a challenge with these memories. Indeed, the endurance constraints of
NVMs can prevent solutions that are commonly employed for other mainstream
memories like DRAM from being carried over as-is to NVMs. Specifically, in this
work we observe that, Oblivious RAM (ORAM) primitive, the state-ofart solution
to tackle memory bus side channel vulnerability, while widely studied for
DRAMs, is particularly challenging to implement as-is for NVMs as it severely
affects endurance of NVMs. This is so, as the inherent nature of ORAM primitive
causes an order of magnitude increase in write traffic and furthermore, causes
some regions of memory to be written far more often than others. This
non-uniform write traffic as manifested by ORAM primitive stands to severely
affect the lifetime of non-volatile memories (1% of baseline without ORAM) to
even make it impractical to address this security vulnerabilit
Distributed Logless Atomic Durability with Persistent Memory
Datacenter operators have started deploying Persistent Memory (PM), leveraging its combination of fast access and persistence for significant performance gains. A key challenge for PM-aware software is to maintain high performance while achieving atomic durability. The latter typically requires the use of logging, which introduces considerable overhead with additional CPU cycles, write traffic, and ordering requirements. In this paper, we exploit the data multiversioning inherent in the memory hierarchy to achieve atomic durability without logging. Our design, LAD, relies on persistent buffering space at the memory controllers (MCs)—already present in modern CPUs—to speculatively accumulate all of a transaction’s updates before they are all atomically committed to PM. LAD employs an on-chip distributed commit protocol in hardware to manage the distributed speculative state each transaction accumulates across multiple MCs. We demonstrate that LAD is a practical design relying on modest hardware modifications to provide atomically durable transactions, while delivering up to 80% of ideal—i.e., PM-oblivious software’s—performance